using System;
using System.Collections.Generic;
using System.Text;
using FriendsNearby.Services.Entities;
using InSTEDD.Labs.Geo;

namespace FriendsNearby.Services
{
    
    public interface IPeopleNearbyService
    {
        /// <summary>
        /// Returns Contacts of a user that are either nearby, direct contacts or contacts of a contact.
        /// </summary>
        /// <param name="userId"></param>
        /// <param name="kind"></param>
        /// <returns>if no contacts are returned, this returns an empty list.</returns>
        IList<PersonNearby> GetContacts(Guid userID, QueryContactsKind kind);
        
        //schedule for move.
        IList<string> GetNotificationsForUser(Guid userID);

		PeopleNearbySummary GetPeopleNearbySummary(Guid userID);
    }

	public class PeopleNearbySummary
	{
		public PeopleNearbySummary(int nearbyFriendCount, double? nearestDistance)
		{
			NearbyFriendCount = nearbyFriendCount;
			NearestDistance = nearestDistance;
		}
		public int NearbyFriendCount
		{
			get;
			private set;
		}

		public double? NearestDistance
		{
			get;
			private set;
		}
	}
}
